package bTree.LeetCode;

public class 买卖股票的最佳时机3 {
    public int maxProfit(int[] prices) {
        int length = prices.length;
        int [][]dp=new int[length][4];
        dp[0][0]=-prices[0];//第一天买入
        dp[0][2]=-prices[0];//第二天买入
        for (int i = 1; i < length; i++) {
            dp[i][0]=Math.max(dp[i-1][0],-prices[i]);
            dp[i][1]=Math.max(dp[i-1][1],dp[i-1][0]+prices[i]);
            dp[i][2]=Math.max(dp[i-1][2],dp[i-1][3]-prices[i]);
            dp[i][3]=Math.max(dp[i-1][3],dp[i-1][2]+prices[i]);
        }
        return dp[length-1][3];
    }
}